#!/usr/bin/env python3
"""
启动脚本 - 用于测试Shopify同步功能
"""

import os
import sys
# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import asyncio
import logging
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# 配置日志
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)


def check_env_vars():
    """检查必要的环境变量"""
    required_vars = [
        'SHOPIFY_API_KEY',
        'SHOPIFY_API_SECRET', 
        'SHOPIFY_STORE_URL',
        'SHOPIFY_ACCESS_TOKEN'
    ]
    
    missing_vars = []
    for var in required_vars:
        if not os.getenv(var) or os.getenv(var) == f"your_{var.lower()}_here":
            missing_vars.append(var)
    
    if missing_vars:
        logger.warning(f"警告: 以下Shopify环境变量未配置或使用默认值: {', '.join(missing_vars)}")
        logger.warning("Shopify API将使用模拟数据模式运行")
    else:
        logger.info("Shopify API配置完整")
    
    return missing_vars


async def test_sync_service():
    """测试同步服务"""
    try:
        # 动态导入避免循环导入问题
        from services.sync_service import sync_service
        
        logger.info("开始测试Shopify同步功能...")
        
        # 执行立即同步
        logger.info("触发立即同步操作...")
        await sync_service.sync_all_data()
        
        logger.info("同步测试完成！")
        logger.info("请访问以下端点查看同步状态:")
        logger.info("- GET /api/sync-status - 查看整体同步状态")
        logger.info("- GET /api/products/sync-shopify - 手动同步商品")
        logger.info("- GET /api/orders/sync-shopify - 手动同步订单")
        
    except Exception as e:
        logger.error(f"同步测试失败: {e}")
        import traceback
        traceback.print_exc()


if __name__ == "__main__":
    # 检查环境变量
    missing_vars = check_env_vars()
    
    # 测试同步服务
    asyncio.run(test_sync_service())
    
    logger.info("同步测试脚本执行完成")
    logger.info("现在您可以启动主应用程序来查看同步数据")
    logger.info("执行: uvicorn main:app --host 0.0.0.0 --port 8000 --reload")